#include<bits/stdc++.h>
using namespace std;
struct stud
{
    int d,v,a;
}b[10000010];
int c[10000010],h[10000010];
int n,m,L,V,T,cnt;
int main()
{
    freopen("detect.in","r",stdin);
    freopen("detect.out","w",stdout);
    cin>>T;
    while(T--)
    {
        cin>>n>>m>>L>>V;
        for(int i=1;i<=n;i++)
        {
            cin>>b[i].d>>b[i].v>>b[i].a;
        }
        for(int i=1;i<=m;i++)
        {
            cin>>c[m];
        }
        for(int i=1;i<=n;i++)
        {
            int x=b[i].d;
            int y=b[i].v;
            int z=b[i].a;
    if(y>V&&z==0)
    {
            if(c[m]>=x)
            {
                cnt++;
            }

    }
    else if(z>0)
    {
            if((V*V-y*y)/(2*z)+x<c[m])
            {
                cnt++;
            }

    }
    else
    {
        if((V*V-y*y)/(2*z)+x>c[m]&&c[m]>x)
            {
                cnt++;
            }
    }
        }
    }
    cout<<cnt<<" "<<cnt;
    return 0;
}
